// attackPower.module.js


// [[file:~/literate-programming/soul-hunter-awakening-damage-calculator-web-edition.org::*attackPower.module.js][attackPower.module.js:1]]
function calculate(object){
    return finalAttackPower({
        武器攻击力:weaponAttackPower({
            武器基础攻击力:object.武器基础攻击力,
            武器精铸攻击力:object.武器精铸攻击力,
            武器重铸攻击力:object.武器重铸攻击力,
            血灵石攻击力增幅:object.血灵石攻击力增幅
        }),
        其他攻击力:otherAttackPower({
            项链攻击力:object.项链攻击力,
            羁绊攻击力:object.羁绊攻击力,
            好感度攻击力:object.好感度攻击力,
            基础攻击力:object.基础攻击力,
            兽潮攻击力:object.兽潮攻击力,
            专精攻击力:object.专精攻击力
        }),
        百分比攻击增幅:percentageAttackIncrease({
            出战魂:object.出战魂,
            强攻:object.强攻,
            兽潮百分比攻击增幅:object.兽潮百分比攻击增幅,
            料理:object.料理,
            魂萃:object.魂萃,
            技能:object.技能,
        })
})}

function finalAttackPower(object){
    let 武器攻击力=object.武器攻击力
    let 其他攻击力=object.其他攻击力
    let 百分比攻击增幅=object.百分比攻击增幅

    return (
        武器攻击力+其他攻击力
    )*(
        1+百分比攻击增幅
    )
}

function weaponAttackPower(object){
    let 武器基础攻击力=object.武器基础攻击力
    let 武器精铸攻击力=object.武器精铸攻击力
    let 武器重铸攻击力=object.武器重铸攻击力
    let 血灵石攻击力增幅=object.血灵石攻击力增幅

    return (
        武器基础攻击力+武器精铸攻击力
    )*(
        1+武器重铸攻击力+血灵石攻击力增幅
    )
}

function otherAttackPower(object){
    let 项链攻击力=object.项链攻击力
    let 羁绊攻击力=object.羁绊攻击力
    let 好感度攻击力=object.好感度攻击力
    let 基础攻击力=object.基础攻击力
    let 兽潮攻击力=object.兽潮攻击力
    let 专精攻击力=object.专精攻击力

    return (
        项链攻击力+
        羁绊攻击力+
        好感度攻击力+
        基础攻击力+
        兽潮攻击力+
        专精攻击力
    )
}

function percentageAttackIncrease(object){
    let 出战魂=object.出战魂
    let 强攻=object.强攻
    let 兽潮百分比攻击增幅=object.兽潮百分比攻击增幅
    let 料理=object.料理
    let 魂萃=object.魂萃
    let 技能=object.技能

    return (
        出战魂+
        强攻+
        兽潮百分比攻击增幅+
        料理+
        魂萃+
        技能
    )
}

export{calculate}
// attackPower.module.js:1 ends here
